package com.tjetc;

import java.util.Arrays;
import java.util.Scanner;

public class _7BubbleSort {
    public static void main(String[] args) {
        int[] nums = {24, 69, 80, 57, 13};
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
    }

    public static void main1(String[] args) {
		/*
            冒泡排序的目标就是每次都能找到最大值并放在数组的最前面 最终形成一个有序的数组
			[24,69,80,57,13] 
			
			第一轮排序：将最大的数找出来
			第一次比较：24 69 80 57 13
			第二次比较：24 69 80 57 13
			第三次比较：24 69 57 80 13
			第四次比较：24 69 57 13 80

			第二轮排序：将第二个大的数找出来
			第一次比较：24 69 57 13 80
			第二次比较：24 57 69 13 80
			第三次比较：24 57 13 69 80
			
			第三轮排序：将第三个大的数找出来
			第一次比较：24 57 13 69 80
			第二次比较：24 13 57 69 80


			第四轮排序：将第第四个大的数找出来
			第一次比较：13 24 57 69 80
		

		说明：
		1.	我们一共有5个元素
		2.	一共进行了4轮排序，外层循环控制找到排序的过程
		3.	每1轮排序可以确定一个数的位置，比如第1轮排序确定最大数，第2轮排序，确定第2大的数位置， 依次类推
		4.	当进行比较时，如果前面的数 大于后面的数，就交换
		5.	每轮比较在减少4->3->2->1 

		*/


        // 问题拆解
        // 1.完成一轮的排序和比较过程
        // 2.再完成所有

        // 第一轮排序的过程
        // int[] arr = {24, 69, 80, 57, 13}; 
        // int temp = 0;
        // for (int i = 0; i < 4; i++) {
        // 	// 什么时候交换？
        // 	if (arr[i] > arr[i + 1]) {
        // 		temp = arr[i + 1];
        // 		arr[i + 1] = arr[i];
        // 		arr[i] = temp;
        // 	}
        // }

        // for (int i = 0; i < arr.length; i++) {
        // 	System.out.print(arr[i]);
        // }


        // 第二轮排序
        // int[] arr = {24, 69, 57, 13, 80}; 
        // int temp = 0;
        // for (int i = 0; i < 3; i++) {
        // 	// 什么时候交换？
        // 	if (arr[i] > arr[i + 1]) {
        // 		temp = arr[i + 1];
        // 		arr[i + 1] = arr[i];
        // 		arr[i] = temp;
        // 	}
        // }

        // for (int i = 0; i < arr.length; i++) {
        // 	System.out.print(arr[i]);
        // }

        // 第三轮排序
        // int[] arr = {24, 57, 13, 69, 80}; 
        // int temp = 0;
        // for (int i = 0; i < 2; i++) {
        // 	// 什么时候交换？
        // 	if (arr[i] > arr[i + 1]) {
        // 		temp = arr[i + 1];
        // 		arr[i + 1] = arr[i];
        // 		arr[i] = temp;
        // 	}
        // }

        // for (int i = 0; i < arr.length; i++) {
        // 	System.out.print(arr[i]);
        // }

        // 第四轮排序
        // int[] arr = {24, 13, 57, 69, 80}; 
        // int temp = 0;
        // for (int i = 0; i < 1; i++) {
        // 	// 什么时候交换？
        // 	if (arr[i] > arr[i + 1]) {
        // 		temp = arr[i + 1];
        // 		arr[i + 1] = arr[i];
        // 		arr[i] = temp;
        // 	}
        // }

        // for (int i = 0; i < arr.length; i++) {
        // 	System.out.print(arr[i]);
        // }

        int[] arr = {24, 13, 90, 69, 80};
        int temp = 0;
        // 最终版冒泡排序
        for (int i = 0; i < arr.length - 1; i++) {

            for (int j = 0; j < arr.length - 1 - i; j++) {
                // 什么时候交换？
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }


    }
}